package com.bosssoft.hr.train.j2se.colletion;
import com.bosssoft.hr.train.j2se.pojo.User;
import lombok.extern.slf4j.Slf4j;

import java.util.Collections;
import java.util.Comparator;
import java.util.Set;
import java.util.TreeSet;

/**
 * @Classname: TreeSetDemo
 * @Description:
 * @author: zoubinyan
 * @Date: 2023/2/22
 */

@Slf4j
public class TreeSetDemo extends BaseCollectionDemo {
    /**
     * 比较器
     */
    private Set<User> userTreeSet = new TreeSet<>(Comparator.comparing(User::getCode));

    /**
     * 利用比较器实现排序
     * @param array User列表
     * @return
     */
    private User[] sort(User[] array) {
        if(null != array && array.length > 0) {
            //添加时set中的比较器会自动比较
            Collections.addAll(userTreeSet,array);
            User[] users = userTreeSet.toArray(new User[userTreeSet.size()]);
            log.info("log:"+"{}","排序成功");
            return users;
        }
        else{
            return array;
        }
    }

    /**
     * 构造数据进行比较
     */
    public void showSortResult() {
        // 调用父类方法构造
        User[] users = generateData();
        // 排序方法
        sort(users);
        // 输出
        for(User user :users) {
            log.info("用户: ",user);
        }
    }
}
